Generic Operations and Partial Evaluation for Strategic Programming
نویسندگان
چکیده
Model-driven software development is a promising new application area for partial evaluation. We have proposed Strategic Programming as a paradigm for model interpretation and compilation by partial evaluation. In this paper we present Pummel, a kernel language for writing generic model-based code. Pummel is a firstorder subset of Scheme with objects and monoid comprehensions. The use of Pummel is illustrated by defining generic operations for validation, reading, and equality of values described by models. These generic operations are specialized to particular models by an online partial evaluator. The specializer can choose to residualize or execute imperative operations on objects, through a conditional binding time attribute. A future construct allows dynamic values to be manipulated statically, if the dynamic values are functionally dependent on static state.
منابع مشابه
Generic Operations and Partial Evaluation using Models
Model-driven software development is a promising new application area for partial evaluation. In this papers, we develop an approach to generic programming using models instead of types. The work is done in the context of Pummel, a first-order subset of Scheme with objects and monoid comprehensions. We define generic operations for validation, reading, and equality of values described by models...
متن کاملStrategic Programming by Model Interpretation and Partial Evaluation
The dominant approach to model-driven development and domain-specific language engineering is to write a translator, or compiler, that defines a strategy for executing the high-level language. In this paper we introduce a new approach to strategic programming by writing interpreters of high-level modeling languages, rather than compilers. This technique is demonstrated by interpreting data mode...
متن کاملA dynamic bi-objective model for after disaster blood supply chain network design; a robust possibilistic programming approach
Health service management plays a crucial role in human life. Blood related operations are considered as one of the important components of the health services. This paper presents a bi-objective mixed integer linear programming model for dynamic location-allocation of blood facilities that integrates strategic and tactical decisions. Due to the epistemic uncertain nature of ...
متن کاملStaging & Embedded Domain Specific Languages
Multi-Stage Programming (MSP) is a programming language feature that allows to define high-level abstractions describing generic, hihly-parametrized code, while removing these abstractions at runtime during a succession of code generation phases (called stages): the last stage corresponds to the actual program execution. MSP removes these abstractions in a process akin to partial evaluation and...
متن کاملTotal and Partial efficiency indexes in data envelopment analysis
Introduction: Data envelopment analysis (DEA) is a data-oriented method for measuring and benchmarking the relative efficiency of peer decision making units (DMUs) with multiple inputs and multiple outputs. DEA was initiated in 1978 when Charnes, Cooper and Rhodes (CCR) demonstrated how to change a fractional linear measure of efficiency into a linear programming format. This non-parametric app...
متن کامل